Multimedia traffic, such as Voice over IP, can experience quality problems due to network congestion. This typically results in an increase in jitter—the variation in transmission delay of individual packets. Jitter can lead to degradation in the quality of a transmitted voice or video signal being transported in packet format over an IP network.
To improve the quality multimedia signals, it is known to prioritize delay-sensitive, real-time traffic, such as Voice over IP data that uses RTP (Real Time Transfer Protocol) or another suitable real-time protocol, over less time critical traffic, such as web access, email, or other data traffic. FIG. 1 shows a conventional system 10 for implementing such a class-based prioritization scheme. Packets 3 arrive in an input queue 2 at a router 4 and wait to be processed. During processing of each packet 3, the router 4 inspects information in a header of the packet to determine a destination address for the packet (e.g., a destination IP address). The router 4 then compares the destination address to a routing table that lists known destination addresses. The routing table associates each known destination address with an output link at the router 4 and with an output priority. After finding an entry in the routing table that includes the destination address for the packet, the router 4 stores the packet in an output queue that is associated with the output link and the output priority listed for the destination address.
In a conventional class-based queuing system, the router 4 also classifies the packet based on the type of data the packet contains and stores the packet in an output queue associated with the class of the packet. Thus, the router 4 may include multiple output queues, one for each class of packet or for each priority of traffic. For instance, the router 4 may include an RTP class queue 6 and a data class queue 8, wherein the RTP class queue 6 is given priority over the data class queue 8.
This approach can be effective, provided the proportion of real-time traffic is relatively low. If the proportion of real-time traffic is relatively high, this approach is ineffective because the delay-sensitive packets are not prioritized relative to each other and may be indiscriminately dropped in response to congestion. An ideal method would be to prioritize packets at an individual stream level, however this has been impractical to implement.
A need therefore exists for an improved solution to this problem that is scalable to very large networks.